﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DTO;
namespace DAO
{
    public class NhanVienDAO : DataProvider
    {


        protected override object GetDataFromDataRow(DataTable dt, int i)
        {
            NhanVienDTO objectDTO = new NhanVienDTO();
            objectDTO.MaLoaiNV = int.Parse(dt.Rows[i]["MaLoaiNV"].ToString());
            objectDTO.MaNhanVien = int.Parse(dt.Rows[i]["MaNhanVien"].ToString());
            objectDTO.NgayNhanChuc = DateTime.Parse(dt.Rows[i]["NgayNhanChuc"].ToString());
            objectDTO.TenNhanVien = dt.Rows[i]["TenNhanVien"].ToString();
            return (object)objectDTO;
        }

        public NhanVienDTO[] GetAll()
        {
            String strSQL = "Select * from NHANVIEN,NHANVIEN_CT,LOAINHANVIEN Where NHANVIEN.MaNhanVien = NHANVIEN_CT.MaNhanVien and LOAINHANVIEN.MaLoaiNV=NHANVIEN_CT.MaLoaiNV ";
            DataTable dt = new DataProvider().ExecuteQuery(strSQL);

            NhanVienDTO[] nhanvienDTOs = new NhanVienDTO[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
                nhanvienDTOs[i] = (NhanVienDTO)GetDataFromDataRow(dt, i);

            return nhanvienDTOs;
        }

        public void insert(NhanVienDTO info)
        {
            string insertCommand1 = "INSERT NHANVIEN_CT VALUES(" +
            info.MaNhanVien + ", " +
            info.MaLoaiNV + ", '" +
            info.NgayNhanChuc.ToShortDateString() + "')";

            ExecuteNonQuery(insertCommand1);

            string insertCommand = "INSERT NHANVIEN VALUES(" +
                info.MaNhanVien + ", '" +
                info.TenNhanVien + ", '" +
                info.MaLoaiNV+ "')";

            ExecuteNonQuery(insertCommand);
        }

        public void update(NhanVienDTO info)
        {
            string updateCommand = "UPDATE NHANVIEN " +
                                    "SET TenNhanVien = '" + info.TenNhanVien + "', " +
                                    " MaLoaiNV = " + info.MaLoaiNV + 
                                    " WHERE MaNhanVien = " + info.MaNhanVien;

            ExecuteNonQuery(updateCommand);
        }

        //public void delete(string maLoaiNV)
        //{
        //    string deleteCommand = "DELETE FROM NHANVIEN WHERE MaLoaiNV = " + maLoaiNV;
        //    ExecuteNonQuery(deleteCommand);
        //}
    }
}
